class Solution {
public:
    int totalFruit(vector<int>& fruits) 
    {
        int num=0;
        int left=0;
        //映射
        unordered_map<int,int> ans;
        for(int right=0;right<fruits.size();right++)
        {
            ans[fruits[right]]++;
            while(ans.size()>2)
            {
                auto it=ans.find(fruits[left]);
                it->second--;
                if(it->second==0)
                {
                    ans.erase(it);
                }
                left++;
            }
            num=max(num,right-left+1);
        }
        return num;
    }
};
